Mercury Lamp

CCPC 厦门 2019 VP

打不过隔壁重邮的 CQU 上一次拿金牌的传奇之战。

居然都已经六年了吗。。。

A - Zayin and Bus

签到题,依旧是手速比 yhn 写的。

不管了。

D - Zayin and Forest

题中的函数就是 $\text{lowbit}(x)$

需要知道树状数组是怎么建树的。

往上加的操作只需要一个计数器统计一下下面的贡献就行。

求和操作完全和正常树状数组相同。

但是这个 $x$ 比较大,又要卡 $O(n \log n)$ 的时间。

所以用一个手写的哈希表优化就行。还好我带了哈希表板子.jpg

G - Zayin and Count

lxy 和 yhn 写的,大概可以数位 dp,我不是很会。

H - Zayin and Obstacles

开始的时候都看漏了 Obstacle s

有点唐。

总之就直接高维差分 + 高位前缀和维护一下每一个点是不是能过。

然后 bfs 一下就行了。

真不知道这种送的题为什么我们三个小时才过。

I - Zayin and Coin Game

似乎是一个由很多套路集合在一起的题。

首先转化题意就是,令 $\{C_n\} = \{A_n\} \text{ xor } \{B_n\}$。

然后目的就是通过每次对一个长度为 $k$ 的环上段异或 $1$,将 $\{C_n\}$ 变为全零。

异或是可以差分的,所以问题转化为每次可以选取距离固定的两个点异或,最后让 $\{C_n\}$ 变成全零(异或前缀和为零的充分条件就是全部为零)。

还有另一个经典结论:

将环分为 $g = \gcd(n, k)$ 个模 $g$ 的同余类,那 $t, t + k$ 必属于同一个类,换句话说每次操作只影响一个类。

于是只需要 check 一下每个类是不是都有偶数个 $1$ 即可。

环上的差分只需要记 $c_0 = c_n$ 即可(下标从 $1$ 开始)

J - Zayin and Tree

lxy 的做法是树上 dp。

我感觉可以点分治。